/**
 * 校验规则
 */

import type { FormItemRule } from 'element-plus'

// 校验 id
const validId: FormItemRule['validator'] = (rule, value, callback) => {
  if (!value) {
    callback(new Error('请输入账号'))
  } else {
    // 用户名校验：4-16位(字母、数字、下划线、减号)
    const reg = /^[a-zA-Z0-9_-]{4,16}$/
    if (reg.test(value)) {
      callback()
    } else {
      callback(new Error('请输入正确的账号'))
    }
  }
}

// 校验密码
const validatePassword: FormItemRule['validator'] = (rule, value, callback) => {
  if (!value) {
    callback(new Error('请输入密码'))
  } else {
    callback()
  }
}

// 校验验证码
const validCaptcha: FormItemRule['validator'] = (rule, value, callback) => {
  if (!value) {
    callback(new Error('请输入验证码'))
  } else {
    // 验证码校验，4位(0-1，a-z，A-Z)
    const reg = /^[a-zA-Z0-9]{4}$/
    if (reg.test(value)) {
      callback()
    } else {
      callback(new Error('请输入四位验证码'))
    }
  }
}

// TODO 待编写
const validDate: FormItemRule['validator'] = (
  rule,
  value,
  callback,
  source,
  options
) => {
  if (!value) {
    callback(new Error('请选择日期'))
  } else {
    callback()
  }
}

export { validId, validatePassword, validCaptcha, validDate }
